Universidad Central de Venezuela- Escuela de Economía. 2024-2025
Fecha de publicación
10 de febrero de 2025
Objetivo
Conocer distintos métodos para juntar data frames por elementos coincidentes en al menos un atributo.
Ciclo
Introducción a los Joins
Los joins son operaciones fundamentales en el manejo de datos que permiten combinar dos o más data frames basados en una o más columnas comunes. En R, puedes utilizar la función dplyr::join() para realizar diferentes tipos de joins.
Tipos de Joins
Inner Join: Devuelve solo las filas que tienen coincidencias en ambos data frames.
Left Join: Devuelve todas las filas del primer data frame y las filas coincidentes del segundo data frame. Si no hay coincidencia, se rellenan con NA.
Tipos de Joins- cont.
Right Join: Devuelve todas las filas del segundo data frame y las filas coincidentes del primer data frame. Si no hay coincidencia, se rellenan con NA.
Full Join: Devuelve todas las filas de ambos data frames. Si no hay coincidencia, se rellenan con NA.
Explicación Visual
Ejemplos Prácticos -Crear DF 1
# Cargar la librería dplyr library(dplyr)# Data frame de países con su poblacióndf_paises <-data.frame ( pais =c("España", "Francia", "Alemania", "Italia"), poblacion =c(47.3, 65.2, 83.1, 60.4) )df_paises
pais poblacion
1 España 47.3
2 Francia 65.2
3 Alemania 83.1
4 Italia 60.4
# Mostrar los data frames
Crear DF 2
# Data frame de países con su PIB per cápitadf_economia <-data.frame( pais =c("España", "Alemania","Italia", "Portugal"),pib_per_capita =c(29500, 37800, 31600, 24000) )df_economia
pais pib_per_capita
1 España 29500
2 Alemania 37800
3 Italia 31600
4 Portugal 24000
Inner Join
# Realizar un inner joininner_join(df_paises, df_economia,by ="pais")
pais poblacion pib_per_capita
1 España 47.3 29500
2 Alemania 83.1 37800
3 Italia 60.4 31600
Explicación : Este join devuelve solo las filas que tienen coincidencias en ambos data frames. En este caso, los países “España”, “Alemania” e “Italia”.
Left Join
# Realizar un left joinleft_join(df_paises, df_economia,by ="pais")
pais poblacion pib_per_capita
1 España 47.3 29500
2 Francia 65.2 NA
3 Alemania 83.1 37800
4 Italia 60.4 31600
Explicación: Este join devuelve todas las filas del primer data frame (df_paises) y las filas coincidentes del segundo data frame (df_economia). Si no hay coincidencia, se rellenan con NA. En este caso, el país “Francia” no tiene una correspondencia en el segundo data frame.
Right Join
# Realizar un right joinright_join(df_paises, df_economia, by ="pais")
pais poblacion pib_per_capita
1 España 47.3 29500
2 Alemania 83.1 37800
3 Italia 60.4 31600
4 Portugal NA 24000
Explicación : Este join devuelve todas las filas del segundo data frame (df_economia) y las filas coincidentes del primer data frame (df_paises). Si no hay coincidencia, se rellenan con NA. En este caso, el país “Portugal” no tiene una correspondencia en el primer data frame.
Full Join
full_join(df_paises, df_economia, by =c('pais'))
pais poblacion pib_per_capita
1 España 47.3 29500
2 Francia 65.2 NA
3 Alemania 83.1 37800
4 Italia 60.4 31600
5 Portugal NA 24000
Explicación : Este join devuelve todas las filas de ambos data frames. Si no hay coincidencia, se rellenan con NA. En este caso, los países “Francia” y “Portugal” no tienen una correspondencia en el otro data frame.